Completed
Push — master ( b2bfd0...3a863a )
by Jonathan
26:07 queued 11:55
created

app.js ➔ ???   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
// Bootstrap
2
import './bootstrap';
3
4
// Slimscroll
5
import 'adminbsb-materialdesign/plugins/jquery-slimscroll/jquery.slimscroll.js';
6
7
// Admin BSB
8
import 'adminbsb-materialdesign';
9
10
// Admin BSB Plugins
11
import 'adminbsb-materialdesign/plugins/bootstrap-select/js/bootstrap-select.js';
12
import 'adminbsb-materialdesign/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.js';
13
import noUiSlider from 'adminbsb-materialdesign/plugins/nouislider/nouislider';
14
15
// Node waves (for Admin BSB)
16
import 'node-waves';
17
18
import 'bootstrap-material-datetimepicker/js/bootstrap-material-datetimepicker';
19
20
// JSTree
21
import 'jstree/src/jstree.search.js';
22
import 'jstree/src/jstree.sort.js';
23
24
// Notify
25
import 'adminbsb-materialdesign/plugins/bootstrap-notify/bootstrap-notify'
26
27
// Sweetalert
28
import 'adminbsb-materialdesign/plugins/sweetalert/sweetalert.min.js'
29
30
// jQuery Count To
31
import 'adminbsb-materialdesign/plugins/jquery-countto/jquery.countTo.js'
32
33
// jQuery Nestable 2
34
import 'nestable2'
35
36
// jQuery Spinner
37
import 'adminbsb-materialdesign/plugins/jquery-spinner/js/jquery.spinner.js'
38
39
// Autosize
40
import autosize from 'adminbsb-materialdesign/plugins/autosize/autosize.js';
41
autosize($('textarea.auto-growth'));
42
43
// Tooltip
44
$("[data-toggle='tooltip']").tooltip();
45
46
// Color picker
47
$('.colorpicker').colorpicker({
48
    customClass: 'colorpicker-2x',
49
    sliders: {
50
        saturation: {
51
            maxLeft: 200,
52
            maxTop: 200
53
        },
54
        hue: {
55
            maxTop: 200
56
        },
57
        alpha: {
58
            maxTop: 200
59
        }
60
    }
61
}).on('changeColor', function (e) {
62
    let rbga = e.color.toRGB()
63
    $(e.currentTarget).parents('.input-group').find('.input-group-addon i')
64
        .css('color', `rgba(${rbga.r},${rbga.g},${rbga.b},${rbga.a})`);
65
  });
66
67
// Datetime picker
68
$('.datepicker').bootstrapMaterialDatePicker({ weekStart : 0, time: false });
69
$('.timepicker').bootstrapMaterialDatePicker({ date: false, format : 'HH:mm' });
70
$('.datetimepicker').bootstrapMaterialDatePicker({ format : 'YYYY-MM-DD HH:mm' });
71
$('.monthpicker').bootstrapMaterialDatePicker({ format : 'MM', time: false });
72
$('.weekpicker').bootstrapMaterialDatePicker({ format : 'w', time: false });
73
74
$('.count-to').countTo();
75
$('[data-trigger="spinner"]').spinner();
76
77
var rangeSliders = $('.nouislider_range');
78
if (rangeSliders.length > 0) {
79
80
    for (var rangeSlider of rangeSliders) {
81
82
        var start = $(rangeSlider).data('start')
83
        var min = $(rangeSlider).data('min')
84
        var max = $(rangeSlider).data('max')
85
        var step = $(rangeSlider).data('step')
86
        var margin = $(rangeSlider).data('margin')
87
        var limit = $(rangeSlider).data('limit')
88
        var value = $(rangeSlider).data('value')
89
90
        var connect = typeof start === 'object' && start.length > 1 ? true : 'lower'
91
92
        // If a value is defined, update start value
93
        if (value) {
94
            start = [];
95
96
            if (typeof value === 'string' && value.search(',') > -1) {
97
                start = value.split(',')
98
            } else {
99
                start.push(value)
100
            }
101
        }
102
103
        noUiSlider.create(rangeSlider, {
104
            start: start,
105
            connect: connect,
106
            step: step,
107
            range: {
108
                'min': min,
109
                'max': max
110
            },
111
            margin: margin ? margin : 1,
112
            limit: limit ? limit : max
113
            // Legend
114
            // pips: {
115
            //     mode: 'steps',
116
            //     stepped: true,
117
            //     density: 4
118
            // }
119
        });
120
121
        getNoUISliderValue(rangeSlider, false);
122
    }
123
}
124
125
//Get noUISlider Value and write on
126
function getNoUISliderValue(slider, percentage) {
127
    slider.noUiSlider.on('update', function () {
128
        var val = slider.noUiSlider.get();
129
130
        if (percentage) {
131
            val = parseInt(val);
132
            val += '%';
133
        }
134
        $(slider).parent().find('span.js-nouislider-value').text(val);
135
        $(slider).parent().find('input').val(val);
136
    });
137
}
138
139
// Domains tree
140
let domainsTree = $('#domains-tree')
141
domainsTree.jstree({
142
    "core" : {
143
        "themes" : {
144
            "icons": false
145
        }
146
    },
147
    "plugins" : ['search', 'sort']
148
})
149
150
// Open tree automatically
151
.on('ready.jstree', () => {
152
    domainsTree.jstree('open_all')
153
})
154
155
// Switch on domain on click
156
.on('changed.jstree', (e, data) => {
157
    if (data.node.a_attr.href !== '#') {
158
        document.location.href = data.node.a_attr.href;
159
    }
160
})
161
162
let to = false;
163
$('.domain-search-bar #domain-name').keyup(() => {
164
    if(to) {
165
        clearTimeout(to)
166
    }
167
168
    to = setTimeout(() => {
169
        let v = $('#domain-name').val()
170
        domainsTree.jstree(true).search(v)
171
    }, 250)
172
});
173
174
$('table.dataTable thead th input, table.dataTable thead th select').on('click', (e) => {
175
    e.stopImmediatePropagation();
176
177
178
})